Element placement system

ABSTRACT

The disclosure describes a system for assigning a plurality of interrelated circuit elements to element positions in an array of element positions on a circuit board. The system includes means for storing an indication of the interrelationship of the elements being assigned and the order in which the elements are to be assigned. Apparatus is provided for assigning the first element to be assigned to a selected position in the array, selecting candidate positions related in a predetermined manner to the position which has just had an element assigned to it; determining the best candidate position for the next element to be assigned and assigning the next element to be assigned to the position determined above; the system repeats the above three steps until all elements have been assigned.

ELEMENT PLACEMENT SYSTEM Primary ExaminerPaul .l. Henon Assistant Examiner-Ronald F. Chapuran [72] Inventor: Harlow Freitag, Lake Mohegan, N.Y. Attorney Hanifin and Clark [73] Assignee: International Business Machines Corporation, Armonk, NY. [57] ABSTRACT [22] Filed: Dec. 1, 1965 The disclosure describes a system for assigning a plurality of interrelated circuit elements to element positions in an array [2]] Appl' 5l0767 of element positions on a circuit board. The system includes means for storing an indication of the interrelationship of the [52] U.S. Cl t ..340/l72.5 elements being assigned and the order in which the elements [51 Int. Cl. t l ..G06f 7/00 are to be assigned. Apparatus is provided for assigning the first [58] Field ofSearch ..340/l72.5;235/151, 151.1, element to be assigned to a selected position in the array, 235/151.ll selecting candidate positions related in a predetermined manner to the position which has just had an element assigned References Clled to it; determining the best candidate position for the next element to be assigned and assigning the next element to be as- UNITED STATES PATENTS signed to the position determined above; the system repeats 3,126,635 3/1964 Muldoon et a1 ..235/151.11 X the above three steps until all elements have been assigned. 3,307,154 2/1967 Garth et al ..340/l72.5 3,325,786 6/1967 Shashoua et a1. ..340/172.5 20 Chums, 33 Drawlng Figures 3,369,163 2/1968 Peterson et a1. ..2 35/l51.l1 X

30 ClRCUlT DESIGN 16 22 WIRING 32 WEIGHTING PATTERN l w|R|NG DATA 20 DETERMINING DEVICE SYSTEM /16 PLACEMENT WAFER SYSTEM TESTER ORDERING ASSIGNMENT SYSTEM SYSTEM PATENTED PR 41912 SHEET OEOF 3O READ DESCRIPTION OF CONNECTIONS AND WEIGHTS INTO SYSTEM READ WAFER SIZE DESCRIP- TION AND OTHER SETUP DATA INTO SYSTEM SET INDICATOR BITS IN MACM TO 0 FOR BAD CIRCUIT POSITIONS DETERMINE AND STORE SUM OF WEICHTED CONNECTIONS TO EACH ELEMENT (W' LIST) SELECT FIRST ELEMENT TO BE ASSIGNED. START T LIST, J LIST AND D LIST ORDER ELEMENT 2-N IN T LIST BY ORDER LIST CRI- TERIA. T LIST NOW COMPLETE PLACE FIRST ELEMENT m T LIST AT CENTRAL IZED POSITION OF MACM FIND NEXT ITEM TO BE PLACED IN T LIST FIND ITS RELATION TO ELE- MENTS ALREADY PLACED PICK BEST POSITION FOR ELE- MENT FROM CANDIDATE POSI- TION LIST PLACE ELEMENT IN BEST POSITION AND RECORD IN M ARRAY UPDATE CANDIDATE POSITION LIST BY REMOVING FILLED POSITION THEREFROM AND PERFORM OTHER HOUSEKEEPINC OPERATIONS HAVE ALL EL PLACED (IE EMENTS BEEN ISTI-T MAX) END OF PLACEMENT OPERATION ADD NEW CANDIDATE POSI- TIONS TO CANDIDATE POSI- TION LIST BY FRONTIER CHOICE METHOD YES CHECK TO SEE IF CANDIDATE POSITIONS REMAIN ERROR CONDITION MAY FOR EXAMPLE,MAKE ALL USABLE UN- FILLED POSITIONS AVAILABLE PATENTEDAPR 4I972 3.654,6l5

sNEET U3UF 30 FIG. 3

READ WAFER SIZE AND OTHER SETUP DATA kREAD SETUP DATA FROM CARDS READ SIZE OF M ARRAY IN Rows M110 READ SIZE OF M ARRAY IN COLUMNS /I12 I CANDIDATE CHOICE CARDS MAY ALSO BE READ IN .1

AT THIS TIME BUT FOR THIS CHARTING A FIXED 1 114 L PATTERN OFAILI DISTANCE IS USED I CENTRALIZED POSITION TO WHICH FIRST ELEMENT I IN ORDER LISTIT LIST) IS TO BE ASSIGNED MAY ALSO F116 BE READ IN AT THIS TIME IF FIXED POSITION AT CEN- LTER OF M ARRAY IS NOT BEING USED J SELECT FIRST ELEMENT TO BE ASSIGNED CHECK W AND PICK ELEMENT I54 WITH HIGHEST WEIGHTED SUM AS FIRST ELEMENT /I56 ENTER ELEMENT NAME IN T LIST PATENTEU 4 I972 l SET UP DES IRABILITY LIST W BBEET EBBE 30 DETERMINE LO0KED AT CONSIDER LIST ELEMENT 118 AND STORE IN CIRCUIT TO BE ELEMENT N i ACCESSES Bow N-COLUMN T Pos|T-/ ION IN N MATRIX AND STORE WEIGHT CONTAINED THEREIN IN N'AccuMuLAToB 12s '1 122 ACCESS Bow 1 coLuMN N Posl'T- HAVE ALL pogmoug m ION IN W MATRIX AND WEIGHT Bow N BEEN ACCESSED YES STORED THEREIN T0 suM IN N- AccuMuLAToB N0 T24 128 ACCESSED NExT POSITION IN Bow N AND ADD CONTENTS THEREOF HAVE ALL POSITIONS TN COLUN YES w' ACC MULATOR v To SUM U N or w BEEN AccEssEB J 130 f AccEss NExT POSITION IN coLuNN N AND ADD coNTENTs THEREOF To suM IN N ACCUMULATOR l 52 TRANSFER suN IN N AccuNuLAToB TO N POSITION IN N' LIST [134 CONSIDER NExT ELEMENT IN CIRCUIT TO BE ELEMENT N YES HAVE ALL ELEMENTs BEEN PATENTEDAPR 4 I972 INITIAL J & DLIST VALUES SUPPLIED I SHEET OSDF 3O CHECK D LIST FOR MAX VALUE (ELEMENT MOST ASSOCIATED WITH ELEMENTS ALREADY ORDERED) YES ORDER ELEMENTS 2 N FIG. 30

IS THERE MORE THAN I MAX? YES CHECK THE TOTAL WEICHTED CONNECTION OF EACH TIE ELE- TIE AGAIN] ORDER LIST (T LIST) NOW COMP- LETE ALL ENTRIES IND LIST NOV! 0 ITO MENT (YI' LIST I.PICK MAX PICK ARBITRARILY ADD NAME OF ELEMENT PICIIED I TO T LIST. SET D LIST ENTRY FOR ELEMENT PICIIED TO 0 FIND CONNECTIONS OF ELEMENT PICIIED ARE ALL CONNECTIONS FOUND? IS CONNECTED ELEMENT ALREADY YES IN ORDER LIST IS CONNECTED ELEMENT LISTED IN CANDIDATE LIST J YES ADD IEICHT OF CONNECTION TO ELEMENT ALREADY IN J TO D IF D VALUE NOT EOUAL TO 0 FIG. 4A

ADD NEW CANDIDATE POSITIONS GIVEN ROW AND COLUMN POSITION OF PLACED ELEI IENT FRONTIER CANDIDATE CHOICE CRITERIA START AT ROW AND coLuNN POSITION 0F ELEHENT JUST PLACED LOOK AT POSITIONS 1 TO THE LEFT,

1 TO THE RIGHT, I ABOVE, AND I BELOW I92 POSITION JUST USED, IN TURN 194 WE ALL 4 POSITIONS BEEN EXAMINED? YES NO 19 {204 N0 CHECK To SEE IF THIS POSITION FALLS FINISHED NEH CANDI- WITHIN THE M ARRAY AREA DATES Now ADDED TO CANDI- YES .DATE POSITION LIST CHECK HAcH To SEE IF THE N0 POSITION IS A USABLE POSITION wHlcH IS NoT ALREADY IN CANDI- DATE POSITION LIST YES [200 RESET INDICATOR BIT FOR POSITION IN MACM A00 Row AND COLUMN POSITION 0F CANDIDATE POSITION TO BOTTOM /202 OF CANDIDATE POSITION LIST PATENTEUAPR 4 I972 SHEET 070F130 FIG MAKE ALL UNFILLED POSIT USAB LE IONS AVAILABLE STORE THE ROW AND COLUMN POSITION OF NEW CANDIDATE AT THE BOTTOM OF CANDI- DATE POSITION LIST GIVEN INDICATOR BITS IN MACM l 210 LOOK AT ALL POSITIONS IN MACM HAVE ALL POSITIONS Y BEEN LOOKED AT 2 220 IS I NDICATOR BIT FOR POSITION No A ONE BI T l E IS POSITION A $000 ARE THERE Now mm m wIIIcII HAS NOT PREVIOUSLY BEEN CANDIDATE POSITION U ST USED OR PLACED IN CANDIDATE POSITION LIST) YES YES

RESET INDICATOR BIT REJECT PRECEED T0 NEXT STEP WAFER IN OPERATION PATENTED APR 4 I972 SHEET 080E 3O FIG.I4C

START l FIND RELATIONSHIP OF NEXT ELEMENT TO BE ASSIGNED TO ELEMENT ALREADY PLACED GET NAME OF NEXT ELEMENT TO BE ASSIGNED FROM T LIST FIND NAMES OF ALL ELEMENTS IN T LIST WHICH HAVE ALREADY BEEN ASSIGNED TO POSITION ON WAFER CONSIDER NEXT ELEMENT WHICH HAS ALREADY BEEN ASSIGNED ALL ELEMENTS HAVE BEEN CONSIDERED ALL CONNECTS-IONS T0 NEXT ELEMENT IN T LIST HAVE BEEN FOUND ALL ELEMENTS HAVE NOTBEEN CONSIDERED ACCESSES VI ARRAY AT INTERSEC- TION CORRESPONDING TO ROW FOR NEXT ELEMENT TO BE ASSIGNED AND VOLUME FOR ASSIGNED ELEMENT AND APPLY CONTENTS OF ACCESSED POSITION IN SUM ACCUMULATOR ACCESS W ARRAY AT INTERSECTION CORRESPONDING TO ROVI FOR ASSIGNED ELEMENT AND VOLUME FOR NEXT ELEMENT TO BE ASSIGNED AND ADD CONTENTS OF ACCESSED POSITION INTO SUM ACCUMULATOR INDICATE CONNECTION LIST AND WEIGHT IN F INB LIST

PATENTEDAPR 4m SHEET 09 OF 30 PICK BEST POSITION FOR ELEMENT PICII A CANDIDATE POSITION FROM CANDIDATE POSITION LIST YES 40 GIVEN B usr 0F CONNECTED ELEMENTS,

F usr 0F WEIGHTS AND CANDIDATE POSITION LIST I I 248 FINISHED B LIST NOT FINISHED FIND THE XAY DISTANCE D E- TWEEN CANDIDATE POSITION AND CONNECTED ELEMENT POSITION SOUARE THE X&Y DISTANCES, SUM THEM AND MULTIPLY BY THE COMPARE PRESENT COST TO BEST ,I

WEIGHT OF THE CONNECTION ADD TO THE COST OF USING THIS CANDIDATE POSITION USE TIE BREAKING SUCH AS PICIIINC POSITION WITH SMALLEST ACCUMULATED X AND Y DISTANCE DIFFERENCE FIND DIFFENCE BETWEEN X ANDY DISTANCES BETWEEN CANDIDATE POSITION AND CONNECTED ELEMENT POSITION AND ADD THIS DIFFERENCE INTO DIFFERENCE ACCUMULATOR STORE COST AS BEST COST THUS FAR STORE LOCATION OF BEST POSITION STORE ACCUMULATE x ANDI DISTANCE DIFFERENCE PATENTEDAPR 972 3,654,615

sum 100; 30

FIGS

FIG. FIG. FIG. FIG. FIG. FIG.

5A 5B 50 SD 5E 5F FIG. FIG. FIG. FIG. FIG. FIG.

56 5H 5I 5d 5K 5L FIG. FIG. FIG. FIG. FIG. FIG.

5M 5N 50 55P 50 SR PATENTEDAPR 4 I972 SHEET 1 3 OF 30 A PULSE SET MATCH INDICATOR T0 1 5 FIG.

P14 EL.

84A B PULSE 1 READ 1 o WRITE 454 0 PULSE CONTROLS END OF LINE P11, P15, P25, N8

PATENTEDAFR 4 1912 SHEET 1% 0F 30 l READ MASK F 2 w m Y KY B ll 88 m w A M 5 M 5 1M, M T X 8 W A T w A A E H% mm 9 R3 M R O m m P P 10 fiv d 0 I2 4 P 6 5 PATENTEDAPR M972 3,654,615

sum lSUF 30 Y GN S16 COMPARE RESET N CLOCK 

1. A system for fabricating an interconnected circuit on a substrate having a plurality of circuit element positions comprising: means for applying to the system information as to the interconnected circuit including the relationship of the elements of the circuit to each other; means for utilizing the relationship of the elements of the circuit to determine the order in which the elements of the circuit are to be assigned to circuit element positions on the substrate; means for assigning the first element to be assigned to a selected element position on said substrate; means operative after each element is assigned to an element position on the substrate for selecting candidate positions related in a predetermined manner to positions which have already had an element assigned to them; means for determining the best candidate position for the next element to be assigned; and means, including in part said first element assigning means, for assigning the next element to be assigned to said best candidate position.
 2. A system of the type described in claim 1 including: means operative when all the elements of said interconnected circuit have been assigned to element positions for initiating the interconnecting of the element positions having elements assigned to them into said interconnected means, means operative in response to said interconnecting initiating means for determining a suitable wiring pattern for interconnecting the element positions having elements assigned to them into said interconnected circuit; AND means for interconnecting said element positions in accordance with said suitable pattern.
 3. A system of the type described in claim 1 further including means operative when all the elements of said interconnected circuit have been assigned to element positions for initiating the interconnecting of the element positions having elements assigned to them into said interconnected circuit.
 4. A system of the type described in claim 1 wherein said means for assigning said first element to a selected element position operates to assign said element to a centralized position on said substrate; and said means for selecting candidate positions operate to select elements positions which have not yet had an element assigned to them and are adjacent to a position which has already had an element assigned to it.
 5. A system of the type described in claim 1 wherein said means for assigning the next element to said best candidate position operated to assign the candidate position for which the eventual interconnections between the next element to be assigned and the elements to which it is connected which have already been assigned is, on the average, the shortest and the simplest.
 6. A system of the type described in claim 1 wherein it is possible that less than 100 percent of the element positions will be useable including: means for applying to the system information as to the useable condition of each of the element positions on the substrate; and means for inhibiting the selection of an unuseable element position as a candidate position by said candidate position selecting means.
 7. A system of the type described in claim 6 wherein said means for assigning said first element to a selected element position operates to assign said element to a centralized position on said substrate; and said means for selecting candidate positions operate to select element positions which have not yet had an element assigned to them and are adjacent to a position which has already had an element assigned to it.
 8. A system of the type described in claim 7 wherein said means for determining the best candidate position includes: means for determining, for each candidate position, the sum of the square of the distance between the candidate position and each position having assigned to it an element related to the next element to be assigned times the relationship of the next element to be assigned to the element assigned to the position; and means for selecting as the best candidate position the candidate position for which the above determined sum is a minimum.
 9. A system for assigning a plurality of interrelated elements to element positions in an array of element positions comprising: means for storing a coefficient of interrelationship between each of said elements; means for utilizing said coefficients of interrelationship to determine the order in which the elements are to be assigned to element positions in said array; means for assigning the first element to be assigned to a selected element position in said array; means operative after each element is assigned to an element position for selecting candidate positions related in a predetermined manner to positions which have already had an element assigned to them; means for determining the best candidate position for the next element to be assigned; and means, including in part said first element assigning means, for assigning the next element to be assigned to said best candidate position.
 10. A system of the type described in claim 9 wherein said means for assigning said first element to a selected element position operates to assign said element to a centralized position in said array; and said means for selecting candidate positions operate to select element positions which have not yet had an element assigned to them and are adjacent to a position which has already had an element assigned to it.
 11. A system of the type dEscribed in claim 9 wherein said means for determining the best candidate position includes: means for determining, for each candidate position, the sum of the square of the distance between the candidate position and each position having assigned to it an element related to the next element to be assigned times the coefficient of interrelationship of the next element to be assigned to the element assigned to the position; and means for selecting as the best candidate position the candidate position for which the above determined sum is a minimum.
 12. A system of the type described in claim 11 including: means operative when two or more candidate positions have the same minimum-determined-sum for determining for which of those candidate positions the average distance in each coordinate direction between the candidate position and the positions having elements related to the next element to be assigned to them are most nearly equal; and means for selecting the candidate position determined to have the minimum average distance difference, by the above means, as the best candidate position.
 13. A system of the type described in claim 10 wherein it is possible that less than 100 percent of the element positions will be useable including: means for applying to the system information as to the useable condition of each of the element positions of the array; and means for inhibiting the selection of an unuseable element position as a candidate position by said candidate position selecting means.
 14. A system of the type described in claim 13 including: means operative after said candidate position selecting means for determining if there are any candidate positions; and means operative in response to a determination by said above means that there are no candidate positions, for making all useable positions in said array available as candidate positions.
 15. A system for assigning a plurality of interrelated elements to element positions in an array of element positions wherein the interrelated elements are circuit elements of an interconnected circuit and wherein the element positions are circuit positions on a substrate, said system comprising: means for storing a coefficient of interrelationship between each of said elements; means for storing a list of said interrelated elements in the order in which they are to be assigned; means for assigning the first element to be assigned to a selected element position in said array; means operative after each element is assigned to an element position in said array for selecting candidate positions related in a predetermined manner to positions which have already had an element assigned to them; means for determining the best candidate position for the next element to be assigned; and means, including in part said first element assigning means, for assigning the next element to be assigned to said best candidate position.
 16. A system of the type described in claim 15 wherein said means for assigning said first element to a selected element position operates to assign said element to a centralized position of said array; and said means for selecting candidate positions operate to select element positions which have not yet had an element assigned to them and are adjacent to a position which has already had an element assigned to it.
 17. A system of the type described in claim 15 wherein said means for determining the best candidate position includes: means for determining, for each candidate position, the sum of the square of the distance between the candidate position and each position having assigned to it an element related to the next element to be assigned times the relationship of the next element to be assigned to the element assigned to the position; and means for selecting as the best candidate position the candidate position for which the above determined sum is a minimum.
 18. A system of the type described iN claim 17 including: means operative when two or more candidate positions have the same minimum determined sum for determining for which of those candidate positions the average distance in each coordinate direction between the candidate position and the positions having elements, related to the next element to be assigned, assigned to them are most nearly equal; and means for selecting the candidate position determined to have the minimum average distance difference by the above means as the best candidate position.
 19. A system of the type described in claim 15 wherein it is possible that less than 100 percent of the element positions will be useable including: means for applying to the system information as to the useable condition of each of the element positions; and means for inhibiting the selection of an unuseable element position as a candidate position by said candidate position selecting means.
 20. A system of the type described in claim 19 including: means operative after said candidate position selecting means for determining if there are any candidate positions; and means operative in response to a determination by said above means that there are no candidate positions, for making all useable positions in said array available as candidate positions. 